#pragma once

#include "IXEnumConfigAttr.h"
#include "XBaseObjImpl.h"


class CXEnumConfigAttrImpl : public CXBaseObjImpl<IXEnumConfigAttr>
{
    typedef CXBaseObjImpl<IXEnumConfigAttr> superclass;
    BEGIN_DEF_SKIN_CLASS(CXEnumConfigAttrImpl, superclass, gs_strGuidXSkin)
        IMP_BASIC_INTF(IXEnumConfigAttr, 0)
        IMP_BASIC_INTF(IXEnum, eIntf_NoCreate)
    END_DEF_SKIN_CLASS();

public:
    CXEnumConfigAttrImpl();
    virtual ~CXEnumConfigAttrImpl();

public:
    // IXEnum
    virtual HRESULT STDMETHODCALLTYPE   Reset();

    // IXEnumConfigAttr
    virtual HRESULT STDMETHODCALLTYPE   put_Node(IN XHANDLE hNode);
    virtual HRESULT STDMETHODCALLTYPE   Next(IXConfigAttr** pData);

protected:
    TiXmlElement*   m_pNode;
    TiXmlAttribute* m_pCurrentAttr;
};


